Since realize does a lot of the heavy lifting of setting up
csd, we have to re-realize the window if we go from no-custom
titlebar to a custom titlebar or vice versa.
https://bugzilla.gnome.org/show_bug.cgi?id=722919
g_return_if_fail (GTK_IS_WINDOW (window));
- was_mapped = gtk_widget_get_mapped (widget);
- if (gtk_widget_get_realized (widget))
- gtk_widget_unrealize (widget);
+ if ((!priv->title_box && titlebar) || (priv->title_box && !titlebar))
+ {
+ was_mapped = gtk_widget_get_mapped (widget);
+ if (gtk_widget_get_realized (widget))
+ {
+ g_warning ("gtk_window_set_titlebar() called on a realized window");
+ gtk_widget_unrealize (widget);
+ }
+ }
+ else
+ was_mapped = FALSE;
unset_titlebar (window);